/*******************************************************************************
 * Copyright (c) 2010 liw.
 * All rights reserved. 
 * 
 * This file is part of VanBus.
 * 
 *     VanBus is free software: you can redistribute it and/or modify
 *     it under the terms of the GNU General Public License as published by
 *     the Free Software Foundation, either version 3 of the License, or
 *     (at your option) any later version.
 * 
 *     VanBus is distributed in the hope that it will be useful,
 *     but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
 * 
 *     You should have received a copy of the GNU General Public License
 *     along with VanBus.  If not, see <http://www.gnu.org/licenses/>.
 * Contributors:
 *     liw - initial API and implementation
 ******************************************************************************/
package org.niclab.vanbus.query.ws;

import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

import org.apache.http.HttpEntity;
import org.apache.http.ParseException;
import org.apache.http.util.EntityUtils;
import org.json.JSONArray;
import org.json.JSONException;
import org.niclab.vanbus.activity.controller.BusStopController;
import org.niclab.vanbus.application.VanBusApplication;
import org.niclab.vanbus.model.BusRoute;
import org.niclab.vanbus.model.BusStop;

import android.content.Context;
import android.util.Log;

public class ClosestBusStopsWSQueryResResolver extends BaseResponseResolver<ClosestBusStopsWSQueryResResolver.QueryResult>{
	

	public static class QueryResult{
		List<BusStop> stops = new ArrayList<BusStop>();
		
		public void addBusStop(BusStop stop){
			stops.add(stop);
			
		}
		
		public List<BusStop> getStops(){
			return stops;
		}
		
	}
	
	private final static String LOG_TAG="ClosestBusStopsWSQueryResHandler";


	
	@Override
	protected QueryResult interpret(HttpEntity entity) {
		JSONArray json =null;
		//List<BusStop> stops =new ArrayList<BusStop>();
		QueryResult result = new QueryResult();
		BusStopController stopController = new BusStopController();
		try {
			String resp = EntityUtils.toString(entity);
			json= new JSONArray(resp);
			for(int i=0;i<json.length();i++){
				JSONArray s = json.getJSONArray(i);
				String stopId=s.getString(0);
				
				
				BusStop stop = stopController.createBusStopFromCache(stopId);
				if(stop == null)
					stop = new BusStop(stopId);
				result.addBusStop(stop);
			}
		}catch (JSONException e) {
			Log.e(LOG_TAG,"JSONArray unmarshing  exception");
			e.printStackTrace();
		} catch (ParseException e) {
			Log.e(LOG_TAG,"parse response Entity exception");
			e.printStackTrace();
		} catch (IOException e) {
			Log.e(LOG_TAG,"IOException parse response Entity");
			e.printStackTrace();
		}
		
		
		return result;
				
	}
	
	

}
